AE
pedido

Munição Pra Só Uma Arma Específica

Por Aerdor, 11 de dez. de 2012 em Scripts

resolvido
23
2k
AerdorA
11 de dezembro de 2012 às 19:47

Ah, tenq ser retirada? Vo testar aqui.

To usando um global 8.54 pra testar umas paradas pro meu projeto de resident evil, testo as scripts nele antes de encaixar no do resident direitinho.

Na verdade não vai ser só de resident o servidor, vai ser de apocalypse zumbi em geral, com áreas de the walking dead, zombieland, etc. xD

Esse ultimate fire bow no server q to fazendo é a bazooka, mas o problema ehq tava dando pra usar a bala da bazooka em arma normal..

 

Mesmo retirando a linha q vc colou, ainda não funciona. Dá a msm mensagem de cancel q vc colocou. DDDDDD:

OneshotO
11 de dezembro de 2012 às 19:56

Então, cara, tenho apenas uma mínima ideia de qual possa ser o problema.

 

O problema pode ser qualquer função interna usada na composição da minha função getPlayerWeaponId(cid) e para resolver, eu preciso do nome correto do servidor global que você usa para ver como ele funciona e porque ele não está retornando um itemid correto.

Editado Dezembro 11 por Oneshot

AerdorA
11 de dezembro de 2012 às 20:07

esse aqui Global Feso'Ot 8.54

 

To quase jogando isso pro alto e fazendo a bazooka estilo uma runa DDDD:

Já tentei de tudo UHASUHUASHUASHUAS pqp

OneshotO
11 de dezembro de 2012 às 20:25

Baixável? Se sim, link, por favor.

AerdorA
11 de dezembro de 2012 às 20:35

Aqui: http://www.xtibia.com/forum/topic/129480-mini-global-854/

OneshotO
11 de dezembro de 2012 às 22:02

Pronto, achei o problema, estava na função mesmo.

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BURSTARROW)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

local area = createCombatArea({
{1, 1, 1},
{1, 3, 1},
{1, 1, 1}
})

setCombatArea(combat, area)

local function getPlayerWeaponId(cid) -- By Oneshot
local ret = 0
for slot = 6, 5, -1 do
	local item = getPlayerSlotItem(cid, slot)
	if item.itemid > 0 and isInArray({1, 2, 3, 5}, getItemInfo(item.itemid).weaponType) then
		ret = item.itemid
		break
	end
end
return ret
end

function onUseWeapon(cid, var)
if getPlayerWeaponId(cid) == 7438 then
	doCombat(cid, combat, var)
	return true
end
doPlayerSendCancel(cid, "You cannot use this arrow with this ordinary bow.")
return false
end

 

Sobre o consumo da munição mesmo com a arma incorreta, só com alterações nas sources para ficar legal. Ou você pode colocar para adicionar o item, logo abaixo da mensagem de erro.

 

doPlayerAddItem(cid, 2546, 1)

 

Mas aí só ficaria legal mesmo com um autostack, senão a munição seria removida e o item pararia na mochila ou no chão por exemplo.

Editado Dezembro 11 por Oneshot

DinoAdminD
18 de dezembro de 2012 às 17:14

Topico Fechado por esta a mais de 7 dias sem acompanhamento e sem Nenhuma postagem!

Editado Dezembro 18 por DinoAdmin

Yan OliveiraY
18 de dezembro de 2012 às 21:38

Tópico movido para a seção de dúvidas e pedidos resolvidos.